L

LinkedIn Outreach Platform Agentic Workflow

Draft Message Reply — LinkedIn Outreach Platform Automation Workflow

Extracts conversation context and drafts a reply using LLM, placing it in the message box

Available free v1.0.0 Browser LLM
$ sidebutton install LinkedIn Outreach Platform
Download ZIP
linkedin_draft_reply.yaml

Inputs

instructions
string

Allowed Domains

  • *.linkedin.com

Step Summary

8 steps using step types: browser.clickbrowser.extractbrowser.extractAllbrowser.injectCSSbrowser.typebrowser.waitllm.generate .

Workflow Definition

YAML source for the linkedin_draft_reply.yaml workflow. This is the complete definition executed by the SideButton MCP server when LinkedIn Outreach Platform agents run this automation.

schema_version: 1
version: "1.2.0"
last_verified: "2026-02-27"
id: linkedin_draft_reply
title: "Draft Message Reply"
description: "Extracts conversation context and drafts a reply using LLM, placing it in the message box"
category:
  level: task
  domain: sales
  reusable: true
params:
  instructions: string
policies:
  allowed_domains:
    - "*.linkedin.com"
embed:
  selector: ".msg-form__msg-content-container"
  position: append
  when: ".msg-s-message-list-content"
  label: "Draft Reply"
  prompt:
    param: instructions
    placeholder: "e.g. be formal and decline, suggest a call"
    title: "Draft Reply"
  param_map:
    instructions: "{{instructions}}"
  result:
    action: "none"
steps:
  # Wait for conversation to be loaded
  - type: browser.wait
    selector: ".msg-s-message-list-content"
    timeout: 5000

  # Visual feedback: pulsing border on compose container while AI works
  - type: browser.injectCSS
    id: sb-draft-feedback
    css: |
      @keyframes sb-pulse {
        0%, 100% { box-shadow: inset 0 0 0 2px rgba(21, 195, 154, 0.3); }
        50% { box-shadow: inset 0 0 0 4px rgba(21, 195, 154, 0.8); }
      }
      .msg-form__contenteditable {
        animation: sb-pulse 1.5s ease-in-out infinite !important;
        border-radius: 8px !important;
      }

  # Extract recent messages from conversation
  - type: browser.extractAll
    selector: "li.msg-s-message-list__event"
    as: messages
    separator: "\n---\n"

  # Extract participant name
  - type: browser.extract
    selector: ".msg-entity-lockup__entity-title, .msg-overlay-conversation-bubble__title span"
    as: participant_name

  # Generate draft reply
  - type: llm.generate
    prompt: |
      You are drafting a LinkedIn reply. Be professional, warm, and concise.

      Conversation with {{participant_name}}:
      {{messages}}

      User instructions: {{instructions}}

      Write a thoughtful reply that:
      - Responds directly to the most recent message
      - Keeps a professional but friendly tone
      - Is concise (2-4 sentences max)
      - Doesn't include greeting like "Hi [name]" if already established
      - Follows any user instructions above if provided

      Return ONLY the message text, no quotes or formatting.
    as: draft

  # Remove visual feedback
  - type: browser.injectCSS
    id: sb-draft-feedback
    css: |
      .msg-form__contenteditable {
        box-shadow: none !important;
        animation: none !important;
      }

  # Type the draft into the message box
  - type: browser.click
    selector: ".msg-form__contenteditable"

  - type: browser.type
    selector: ".msg-form__contenteditable"
    text: "{{draft}}\n\n---\nSent from sidebutton.com"

How To Run

Install the LinkedIn Outreach Platform knowledge pack into your SideButton agent, then dispatch this workflow by its ID linkedin_draft_reply.yaml. Agents invoke it directly via the MCP protocol or through the portal.